// pages/bind_fleet/bind_fleet.js
var phoneValidCode = /^[1][3,4,5,7,8][0-9]{9}$/;

var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    canTap: true,             // 验证码按钮可点击状态
    validBtnTxt: '获取验证码', // 获取验证码按钮的文字
    validValue: '',           // 验证码的值
    validHint: false,         // 验证码提示信息显示或隐藏的控制
    validHintTxt: '',         // 验证码提示的内容
    phoneNum: '',             // 手机号码 
    fleetName: '',            // 车队名称
    phoneNumCorrect: false,   // 手机号码输入校正状态
    hasFleet: false           // 判断是否有匹配的车队
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var self = this;

    // 检测用户的登录状态
    // app.getLoginSession(function(session) {
    //   // 如果获取session 成功
    //   // 发送请求 获取司机的手机号码
    //   wx.request({
    //     url: app.api + '/wx_log_test/user/apporve',
    //     data: {
    //       token: session
    //     },
    //     success(res) {
    //       // 请求成功后再获取司机的车队
    //       wx.request({
    //         url: app.api + '/wx_log_test/driver/company',
    //         data: {
    //           mobile: res.data.data.driver.phone,
    //           token: session
    //         },
    //         success: function(res) {
    //           // 如果找不到车队
    //           if(res.data.data.indexOf('找不到') != -1) {
    //             self.setData({
    //               fleetName: ''
    //             })
    //           }else {
    //             self.setData({
    //               fleetName: res.data.data
    //             })
    //           }
    //         },
    //         fail: function(res) {
    //           wx.showModal({
    //             title: '提示',
    //             content: '抱歉，网络错误请稍候重试',
    //             showCancel: false,
    //             success(confirm) {
    //               if(confirm) {
    //                 wx.redirectTo({
    //                   url: '/pages/user_content/user_content',
    //                 })
    //               }
    //             }
    //           })
    //         }
    //       })
    //     }
    //   })
    // })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },

  /**
   * 验证码等待时间函数
   */
  waitNextTime(sec) {
    /**
     * @param {Number} sec - 验证码等待时间
     */
    // 如果是0 秒
    if(sec == 0) {
      this.setData({
        canTap: true,
        validBtnTxt: '获取验证码'
      });
      return;
    }


    var self = this;

    this.setData({
      validBtnTxt: sec + '秒后重新获取',
      canTap: false
    });

    setTimeout(function() {
        self.waitNextTime(sec - 1);
    }, 1000);
  },

  /**
   * 手机号码输入事件函数
   */
  input(e) {
    this.setData({
      phoneNum: e.detail.value
    })
    if (phoneValidCode.test(e.detail.value)) {
      this.setData({
        phoneNumCorrect: true
      })
    }else {
      this.setData({
        phoneNumCorrect: false
      })
    }
  },



  /**
   * 获取验证码按钮点击事件
   */
  getValidCode() {

    var self = this;

    app.getLoginSession(function(session) {
      wx.request({
        url: app.api + '/wx_log_test/user/getsix',
        data: {
          phone: self.data.phoneNum,
          token: session
        },
        success: function(res) {
          // 设置验证码的值
          self.setData({
            validValue: res.data.data.code
          });
          self.waitNextTime(60);
        },
        fail: function(res) {
          wx.showModal({
            title: '提示',
            content: '抱歉，获取验证码失败请稍后重试'
          })
        },
      })
    })
  },


  /**
   * 验证码输入框输入事件
   */
  inputcode(e) {
    // 验证码长度为6 且 不等于系统的验证码
    // 显示错误
    var self = this;

    if(e.detail.value.length === 6 && !(e.detail.value == this.data.validValue)) {
      console.log('error');
      this.setData({
        validHint: true,
        validHintTxt: '验证码错误'
      });
      return;
    }


    // 验证码正确时才发送个请求获取车队信息
    if (e.detail.value.length === 6 && e.detail.value == this.data.validValue) {
      // 输入验证码正确的时候发送请求
      // 获取司机的车队
      this.setData({
        validHint: false,
        validHintTxt: ''
      })

      app.getLoginSession(function (session) {
        wx.request({
          url: app.api + '/wx_log_test/driver/company',
          data: {
            token: session,
            mobile: self.data.phoneNum
          },
          success: function (res) {
            if (res.data.status == 400) {
              self.setData({
                hasFleet: false,
                fleetName: res.data.msg
              })
            } else {
              self.setData({
                hasFleet: true,
                fleetName: res.data.msg
              })
            }

          },
          fail: function (res) {
            wx.showModal({
              title: '提示',
              content: '抱歉加载车队信息失败，请稍候重试'
            })
          }
        })
      })
    }

  },




  /**
   * 绑定车队按钮点击事件
   */
  confirmBind() {
    var self = this;

    app.getLoginSession(function(session) {
      wx.request({
        url: app.api + '/wx_log_test/driver/bang',
        data: {
          token: session,
          company: self.data.fleetName
        },
        method: 'POST',
        success: function (res) {
          wx.showModal({
            title: '提示',
            content: '绑定车队成功'
          })

        },
        fail: function (res) {
          wx.showModal({
            title: '提示',
            content: '抱歉，绑定失败请稍候重试'
          })
        }
      })
    })
  }
})